package com.xuwang.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 举报投诉受理表DTO
 * @ClassName ComplaintsAcceptDto
 * @Description TODO
 * @Author OuJunchen
 * @Date 2021/9/16 下午3:22
 * @Version 1.0
 */
public class ComplaintsAcceptDto {
    /**
     * 主键
     */
    private Integer id;

    /**
     * 编号
     */
    private Integer serialNumber;

    /**
     * 举报类型
     */
    private Integer type;

    /**
     * 举报人
     */
    private String whistleblower;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 举报内容
     */
    private String reportContent;

    /**
     * 举报形式（群众举报等）
     */
    private Integer reportForm;

    /**
     * 问题类别
     */
    private Integer problemCategory;

    /**
     * 匿名
     */
    private Integer anonymous;

    /**
     * 来电时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    // 下面是服务器响应返回的内容，如果没有格式化转换，那么返回的内容是长毫秒数，接收mysql数据库中的数据也需要设置东八区+8时
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date callTime;

    /**
     * 办理期限
     */
    private Integer processingPeriod;

    /**
     * 办结时间
     */
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    // 下面是服务器响应返回的内容，如果没有格式化转换，那么返回的内容是长毫秒数，接收mysql数据库中的数据也需要设置东八区+8时
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date processingTime;

    /**
     * 转办意见
     */
    private String transferOpinion;

    /**
     * 所在区域
     */
    private String area;

    /**
     * 接电人
     */
    private String caller;

    /**
     * 流程选择
     */
    private Integer processSelection;

    /**
     * 分管领导id（政府工作人员表）
     */
    private Integer governmentStaffId;

    /**
     * 分管领导姓名
     */
    private String staffName;

    /**
     * 部门名
     */
    private String departmentName;

    /**
     * 投诉时间
     */
    private Date complaintsTime;

    public Date getComplaintsTime () {
        return complaintsTime;
    }

    public void setComplaintsTime (Date complaintsTime) {
        this.complaintsTime = complaintsTime;
    }

    public Integer getId () {
        return id;
    }

    public void setId (Integer id) {
        this.id = id;
    }

    public Integer getSerialNumber () {
        return serialNumber;
    }

    public void setSerialNumber (Integer serialNumber) {
        this.serialNumber = serialNumber;
    }

    public Integer getType () {
        return type;
    }

    public void setType (Integer type) {
        this.type = type;
    }

    public String getWhistleblower () {
        return whistleblower;
    }

    public void setWhistleblower (String whistleblower) {
        this.whistleblower = whistleblower;
    }

    public String getPhone () {
        return phone;
    }

    public void setPhone (String phone) {
        this.phone = phone;
    }

    public String getReportContent () {
        return reportContent;
    }

    public void setReportContent (String reportContent) {
        this.reportContent = reportContent;
    }

    public Integer getReportForm () {
        return reportForm;
    }

    public void setReportForm (Integer reportForm) {
        this.reportForm = reportForm;
    }

    public Integer getProblemCategory () {
        return problemCategory;
    }

    public void setProblemCategory (Integer problemCategory) {
        this.problemCategory = problemCategory;
    }

    public Integer getAnonymous () {
        return anonymous;
    }

    public void setAnonymous (Integer anonymous) {
        this.anonymous = anonymous;
    }

    public Date getCallTime () {
        return callTime;
    }

    public void setCallTime (Date callTime) {
        this.callTime = callTime;
    }

    public Integer getProcessingPeriod () {
        return processingPeriod;
    }

    public void setProcessingPeriod (Integer processingPeriod) {
        this.processingPeriod = processingPeriod;
    }

    public Date getProcessingTime () {
        return processingTime;
    }

    public void setProcessingTime (Date processingTime) {
        this.processingTime = processingTime;
    }

    public String getTransferOpinion () {
        return transferOpinion;
    }

    public void setTransferOpinion (String transferOpinion) {
        this.transferOpinion = transferOpinion;
    }

    public String getArea () {
        return area;
    }

    public void setArea (String area) {
        this.area = area;
    }

    public String getCaller () {
        return caller;
    }

    public void setCaller (String caller) {
        this.caller = caller;
    }

    public Integer getProcessSelection () {
        return processSelection;
    }

    public void setProcessSelection (Integer processSelection) {
        this.processSelection = processSelection;
    }

    public Integer getGovernmentStaffId () {
        return governmentStaffId;
    }

    public void setGovernmentStaffId (Integer governmentStaffId) {
        this.governmentStaffId = governmentStaffId;
    }

    public String getStaffName () {
        return staffName;
    }

    public void setStaffName (String staffName) {
        this.staffName = staffName;
    }

    public String getDepartmentName () {
        return departmentName;
    }

    public void setDepartmentName (String departmentName) {
        this.departmentName = departmentName;
    }

    @Override
    public String toString () {
        final StringBuilder sb = new StringBuilder("{");
        sb.append("\"id\":")
                .append(id);
        sb.append(",\"serialNumber\":")
                .append(serialNumber);
        sb.append(",\"type\":")
                .append(type);
        sb.append(",\"whistleblower\":\"")
                .append(whistleblower).append('\"');
        sb.append(",\"phone\":\"")
                .append(phone).append('\"');
        sb.append(",\"reportContent\":\"")
                .append(reportContent).append('\"');
        sb.append(",\"reportForm\":")
                .append(reportForm);
        sb.append(",\"problemCategory\":")
                .append(problemCategory);
        sb.append(",\"anonymous\":")
                .append(anonymous);
        sb.append(",\"callTime\":\"")
                .append(callTime).append('\"');
        sb.append(",\"processingPeriod\":")
                .append(processingPeriod);
        sb.append(",\"processingTime\":\"")
                .append(processingTime).append('\"');
        sb.append(",\"transferOpinion\":\"")
                .append(transferOpinion).append('\"');
        sb.append(",\"area\":\"")
                .append(area).append('\"');
        sb.append(",\"caller\":\"")
                .append(caller).append('\"');
        sb.append(",\"processSelection\":")
                .append(processSelection);
        sb.append(",\"governmentStaffId\":")
                .append(governmentStaffId);
        sb.append(",\"staffName\":\"")
                .append(staffName).append('\"');
        sb.append(",\"departmentName\":\"")
                .append(departmentName).append('\"');
        sb.append(",\"complaintsTime\":\"")
                .append(complaintsTime).append('\"');
        sb.append('}');
        return sb.toString();
    }
}
